iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
自我挑戰組

C# 和 SQL 探索之路 - 3系列 第 6

Day 6: C# 內部的排序方式

  • 分享至 

  • xImage
  •  

昨天我們寫過了快速排序,不過其實可以對陣列或 List 直接呼叫 Sort 方法。在 .NET Framework 4.5 以前該方法使用快速排序,.NET Framework 4.5 以後 (至後來的 .NET) 皆使用 Introspective Sort(Introsort, 或稱內省排序),速度也比一般的泡沫排序快很多 ~

Introsort 會依據條件使用 Insertion Sort (插入排序)、Heapsort (堆積排序) 或 Quicksort (快速排序),以在最壞的狀況下,仍保持 O(NlogN) 的時間複雜度。接下來介紹相關的排序方式:

  • Quicksort: 昨天有提到 (Day 5: 用 C# 練習快速排序 - iT 邦幫忙)。
  • Insertion Sort: 將資料分成已排序和未排序兩部份,將未排序的資料逐步插入到已排序資料的適當順序,直到沒有未排序資料為止。適合用在資料較少的時候。
  • Heapsort: 建立 Max Heap 的二元樹,此時根節點會是最大值,再慢慢地將根節點的值和最右方子節點交換並取出,並重新將最大值移到根節點。重複步驟直到所有節點都被取出。

參考資料


上一篇
Day 5: 用 C# 練習快速排序
下一篇
Day 7: C# 怎麼寫出好的命令列程式
系列文
C# 和 SQL 探索之路 - 330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言